import {Section} from './section';
import {DubboInfo} from './dubbo-info';
import {Artifact} from './artifact';
import {EntityRef} from './entity-ref';

export class DocApi {
    /**
     * API编码，即{className}.{methodName}
     */
    code: string;

    /**
     * API编码，全局唯一
     */
    key: string ;

    /**
     * 接口类型：0=RESTful, 1=Dubbo
     */
    type: number;

    /**
     * 接口名称
     */
    name: string;

    /**
     * 接口版本
     */
    version: string;

    /**
     * 注释
     */
    comment: string;

    /**
     * since注释
     */
    since: string;

    /**
     * author注释
     */
    author: string;

    /**
     * deprecated 注释
     */
    deprecated: string;

    /**
     * type=RESTful时有效 请求方法:GET / POST / DELETE...
     */
    methods: string[];

    /**
     * RESTful请求路径
     */
    paths: string[];

    /**
     * 排序,越小越前
     */
    rank: number;

    /**
     * 响应
     */
    response: EntityRef;

    /**
     * 请求参数
     */
    requestParams: EntityRef[];

    /**
     * Dubbo接口客户端包的坐标信息，Dubbo接口时有值
     */
    artifact?: Artifact;

    /**
     * 父级
     */
    section: Section;

    /**
     * com.alibaba.dubbo.config.annotation.Service注解对应的属性(接口属性)，Dubbo接口时有值
     */
    dubboInfo: DubboInfo;
}
